let callback = [];
let pedding = false;
function flush() {
  callback.forEach((item) => {
    item();
  });
}
let timerFunc;
if (Promise) {
  timerFunc = () => {
    Promise.resolve().then(flush);
  };
} else if (MutationObserver) {
  // h5 异步方法 他可以监听DOM变化，监控完毕之后在来异步更新
  let observer = new MutationObserver(flush);
  let textNode = document.createTextNode(1); //创建文本
  observer.observe(textNode, { CharacterData: true }); //观测文本的内容
  timerFunc = () => {
    textNode.textContent = 2;
  };
} else if (setImmediate) {
  //ie
  timerFunc = () => {
    setImmediate(flush);
  };
}
export function nextTick(cb) {
  callback.push(cb);

  if (!pedding) {
    timerFunc(); //这个方法就是异步方法
    pedding = true;
  }

  // cb();
}
//nextTick 列队对数据进行了处理，处理完之后，在处理我们的方法，然后实现生命周期
